﻿/***************************************************************
 * 开发人员：网魂小兵@http://www.mozlite.com
 * 
 * 目标标本：4.0.30319.239
 * 
 * 最后修改：2011/11/11 18:26:57
 * ************************************************************/
namespace Mozlite.Common
{
    using System;
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;

    /// <summary>
    /// 后台验证。
    /// </summary>
    public class SAuthorizeAttribute : PermissionAuthorizeAttribute
    {
        /// <summary>
        /// 初始化类<see cref="T:Mozlite.Common.SAuthorizeAttribute"/>。
        /// </summary>
        /// <param name="permissionName">权限名称。</param>
        public SAuthorizeAttribute(string permissionName = "") : base(permissionName) { }

        /// <summary>
        /// 角色等级。
        /// </summary>
        protected override RoleLevel RoleLevel
        {
            get { return Common.RoleLevel.Administrator; }
        }

        /// <summary>
        /// 权限方案ID。
        /// </summary>
        protected override Guid SchemaID
        {
            get { return new SecurityPermission().SchemaID; }
        }

        /// <summary>
        /// 获取权限类型。
        /// </summary>
        protected override Type PermissionType
        {
            get { return typeof(SecurityPermission); }
        }

        /// <summary>
        /// 获取权限。
        /// </summary>
        /// <param name="schemaID">权限方案。</param>
        /// <param name="roleIDs">角色ID列表。</param>
        /// <returns>返回权限实例。</returns>
        protected override PermissionBase GetPermission(Guid schemaID, List<int> roleIDs)
        {
            return Permissions.GetPermission<SecurityPermission>(schemaID, roleIDs);
        }
    }
}